Math Sci Life Code Log in

Codes

Code your ideas for understanding of natural systems

Updated at 2021.12.14

Enum 타입 다루기

열겨형 타입(Enumeration Type)은 프로그래밍시 매우 유용하고 많이 다루게 된다. enum 키워드를 사용하여 타입을 정의하고, 그것을 새로운 타입으로 하여 새로운 변수를 정의하여 사용하면 된다.

실전 프로그래밍시에는 intstring 타입으로 변경할 경우가 많이 발생하는데 그것을 어떻게 할 수 있는지를 여기서 정리해 본다.

enum DialogResult {
    YES, // 0
    NO,  // 1
    CANCEL, // 2
    CONFIRM, // 3
    OK //4
}

DialogResult rslt = DialogResult.NO;

정수값을 할당하지 않으면 컴파일러가 순서대로 0부터 번호를 자동으로 할당한다.

enum to string

기본적으로 문자열로 변환하는 것은 매우 쉽다. ToString()함수를 제공하기 때문이다.

string str = rslt.ToString();
// str = "NO"

enum to int

정수형으로 변환하는 것을 캐스팅을 활용하면 쉽게 가능하다.

int num = (int)rslt;
// num = 1

string to enum

문자열을 enum으로 변환하는 경우는 위의 두가지 경우와 같은 함수와 간단한 캐스팅이 되지 않는다.

DialogResult rslt = (DialogResult)Enum.Parse(typeof(DialogResult), "NO");
// rslt = DialogResult.NO

매번 위와 같은 코드를 작성하기 보다는 ToString()함수 처럼 일반적으로 쓸 수 있는 ToEnum() Extension Method를 만들 수 있다.

// Definition of Extension Method
public static T ToEnum<T>(this string enumString)
{
    return (T)Enum.Parse(typeof(T), enumString)
}

// Usage
string noStr = "NO";
DialogResult rslt = noStr.ToEnum<DialogResult>();
// rslt = DialogResult.NO

int to enum

정수형을 열겨형으로 변환하는 것을 타입캐스팅을 활용하면 된다.

DialogResult rslt = (DialogResult)1;
// rslt = DialogResult.NO

17 개의 글이 있습니다.

# 제목 날짜 조회수
01 CS 배우기 요약 2021/06/07 145
02 CS Statements 2021/06/07 128
03 퍼셉트론 2021/04/15 124
04 Blazor and Sqlite 2021/04/15 137
05 Blazor Layouts 2021/04/15 160
06 CS Language Reference 2021/06/07 126
07 VSCode and Markdown 2021/04/15 137
08 Blazor에서 이미지파일 다루기 2021/06/10 211
09 Blazor and Markdown 2021/04/15 144
10 종속성 주입 2021/06/07 152
11 Blazor에서 데이터 다루기 2021/06/07 137
12 Blazor Components 2021/04/15 147
13 CS Glossary 2021/06/07 126
14 Enum 타입 다루기 2021/12/14 135
15 생활코딩 CS01 2022/04/25 261
16 생활코딩 CS02 2022/04/30 165
17 생활코딩 CS03 2022/04/30 441

Most Popular #3

Recent #3

An error has occurred. This application may no longer respond until reloaded. Reload 🗙